'''
进程与线程

进程 - Process
    -一个任务就是一个进程
    -一个程序至少包含一个进程，也可以有多个进程

线程 - Thread
    -进程任务可以被分解为多个子任务，每个子任务都是一个线程
    -一个进程至少包含一个线程，也可以有多个线程
    -线程是CPU调度的最小单元

在Python中多任务建议使用多进程来完成。
    -因为GIL锁的存在，Python只能同时运行一个线程(即使同时存在多个可用的CPU)
    -GIL锁 Global Interpreter Lock
    -进程不受GIL锁的影响

多线程可以方便的实现数据的共享，多进程数据共享比较困难

分布式进程
    -将进程分布到多台机器上执行，其中一个进程作为调度者，将任务发布给其它进程执行
'''

'''
多进程
'''
from multiprocessing import Process
import os,time


def f(name):
    print('运行进程%s(%s)'%(name,os.getpid()))


if __name__ == "__main__":
    print('主进程%s开始运行了'%os.getpid())
    # f('测试')
    # 创建一个新的进程
    p = Process(target=f,args=('测试',))
    # 启动进程
    p.start()
    # time.sleep(1)
    # 将子进程加入到主进程中
    p.join()
    print('主进程%s运行结束了'%os.getpid())




